iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0
AI & Data

爬蟲怎麼爬 從零開始的爬蟲自學系列 第 21

爬蟲怎麼爬 從零開始的爬蟲自學 DAY21 python網路爬蟲開爬-3我已滿18歲(cookie)

  • 分享至 

  • xImage
  •  

前言

各位早安,書接上回我們已經能夠成功抓到整頁的文章標題了,今天我們要來破解 PTT 某些版上的是否已滿18歲頁面了

開爬-我已滿18歲

各位一定很想知道最近的時事八卦吧
但是進入八卦版時會跳出是否已滿18歲的問題
今天我們就要來克服它

要看八卦版首先我們把網址改成八卦版的網址
去複製回來貼上就好
可以看到換成八卦版的網址了
https://ithelp.ithome.com.tw/upload/images/20211003/20140149yyAaXrZx7p.jpg
但是奇怪 怎麼啥都沒有

公布答案 答案是被這傢伙
https://ithelp.ithome.com.tw/upload/images/20211003/20140149AxvDnXKfgU.jpg
給擋住了

你如果去看它的原始碼 就會發現
https://ithelp.ithome.com.tw/upload/images/20211003/20140149CJX8mLqwlF.jpg
根本沒有啥 < div class="title" > 可以給你抓 當然抓不到任何東西

所以我們要想辦法處理掉這傢伙 才能爬取八卦版上的東西

所以我們要來觀察它 按下 F12 就會開啟開發人員工具
找到 Application
https://ithelp.ithome.com.tw/upload/images/20211003/20140149voZhsKfexD.jpg
按下去

就會看到
https://ithelp.ithome.com.tw/upload/images/20211003/20140149ch3ez76WW1.jpg
按 Cookie 旁的小箭頭再按下面那個
仔細盯著這區看

接著按下 我同意,我已年滿十八歲 (沒滿18的就當作為了學習犧牲吧)
https://ithelp.ithome.com.tw/upload/images/20211003/20140149T67GewZage.jpg
你會發現裡面多出了一個 over18 它的 Value (值)是 1
那根據判斷 它應該就是我們今天的主角了
這時候你重新整理會發現沒有再跳出一次18歲確認
這便是因為你的瀏覽器裡存的 Cookie 告訴網站你已經確認過了

所以只要我們的程式裡也送出這個 Cookie 便可以達到直接進入八卦板內爬取資訊的目的了

首先建立一個變數 headers
headers 是啥呢 就是我們瀏覽器傳給網站的資料
在裡面放入要附加的 cookie 資訊 over18=1

headers = {"cookie" : "over18=1"}

接下來利用 requests.get() 的功能將 headers 一並傳過去

request = requests.get(url,headers = headers)

結果如下
https://ithelp.ithome.com.tw/upload/images/20211003/20140149pDtxefVMz6.jpg
終於繞過18歲守門員成功抓到網頁資訊了

今天的程式碼

import requests
import bs4

url = "https://www.ptt.cc/bbs/Gossiping/index.html"
#抓PTT八卦版的網頁原始碼

headers = {"cookie" : "over18=1"}
#建立headers用來放要附加的cookie

request = requests.get(url,headers = headers)
#將網頁資料利用requests套件GET下來並附上cookie

data = bs4.BeautifulSoup(request.text, "html.parser")
titles = data.find_all("div", class_ = "title")
#解析網頁原始碼

for title in titles:
    if title.a != None:
        print(title.a.string)
#利用for迴圈印出全部並篩選掉已被刪除的文章

今天我們藉由打敗18歲守門員學習到附加 cookie 的方法
明天我們會學其他東東 敬請期待

參考資料:
https://www.youtube.com/watch?v=BEA7F9ExiPY&list=PL-g0fdC5RMboYEyt6QS2iLb_1m7QcgfHk&index=20
https://ithelp.ithome.com.tw/articles/10220161


早安閒聊區

你知道嗎?

我們眼睛看到的世界其實都經過大腦的後製喔

每日二選一

你還相信眼見為憑嗎還是不想再被腦袋戲耍了呢


上一篇
爬蟲怎麼爬 從零開始的爬蟲自學 DAY20 python網路爬蟲開爬-3抓取整頁標題
下一篇
爬蟲怎麼爬 從零開始的爬蟲自學 DAY22 python網路爬蟲開爬-4翻頁繼續爬
系列文
爬蟲怎麼爬 從零開始的爬蟲自學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言